1. Technical Field
The present invention relates to an improved data processing system and, in particular, to a method and system for multicomputer data transferring, specifically, distributed data processing in a client-server environment.
2. Description of Related Art
Given the increasing capabilities and decreasing costs of information processing and data networking technologies, the network is rapidly expanding its reach. The emerging infrastructure of computers interconnected by networks presents users with the ability to execute applications in a variety of configurations.
The X Window system is a network-based graphical windowing system for workstations. X Windows has been widely adopted as an industry standard supported by a consortium of industry leaders. Many Unix machines include X Windows as part of their operating system.
The X Window system is based upon the client-server model. A client application is an application program which performs a specific task. A display server application is a program which acts as the intermediary between client applications and the machine hardware. The display server application keeps track of all user and client application input/output. Ordinarily, the display server program is started automatically, or once started, executes for an entire user session.
One challenge presented to application developers by a network computing environment is the wide range of devices that are interconnected by networks. A typical network usually has many different kinds of attached devices with diverse hardware architectures, operating systems, and application support. Java runtime environments address this challenge by enabling the creation of platform-independent applications. A single Java application can execute unchanged on a wide variety of hardware platforms. Compared with applications written for a specific hardware and operating system platform, platform-independent programs written in Java can be easier and cheaper to develop and maintain. A Java application may run on a Java runtime platform that has been tailored for execution on a specific platform consisting of specific hardware and its platform-specific supporting operating system. By developing a Java runtime environment for various operating systems, the Java runtime environment acts as an intermediate layer between a Java application and a platform-specific operating system and provides platform-independence for the Java application.
Java runtime environments have been developed for several different computing platforms, such as Unix workstations. When a Java application is executing on a Unix host machine through X Windows, the graphics generated by the Java application may be distributed using the X Windows protocol to an X Windows server that is running on a client machine.
The Java runtime environment contains an audio playback engine that uses the native audio support of the supporting machine to play the audio data. However, there is no support for audio in the X Windows protocol. In most cases, when a Java application on a host machine generates an audio datastream, the underlying platform-specific operating system will employ the audio support of the underlying machine so that the audio will be audible at the underlying host machine and not the client machine. Hence, if a user at a client machine remotely executes a Java application on a host machine, the graphics for the Java application will appear on the user's client machine, but the audio will be played on the remote host machine, and the user will not hear the generated audio on the client machine. This situation is possibly unexpected to the user and certainly undesirable.
Therefore, it would be advantageous to provide a method and system for remote audio processing in a distributed heterogeneous environment, and in particular, to provide distributed audio that has the advantages provided by Java platform-independence.